package cn.lijiajia3515.cairo.mongo.data;

import cn.lijiajia3515.cairo.mongo.data.mapping.model.AbstractMongoField;
import cn.lijiajia3515.cairo.mongo.data.mapping.model.AbstractUpperCamelCaseField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import java.io.Serializable;

@Data
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder(toBuilder = true)
public abstract class AbstractMongo implements Serializable {

	@Builder.Default
	protected MetaMongo meta = new MetaMongo();

	public static abstract class Field extends AbstractUpperCamelCaseField {
		public Field() {
			super();
		}
		public Field(AbstractMongoField parent, String prefix) {
			super(parent, prefix);
		}
	}
}
